awk {
	#awk 也可以在脚本以外赋值，并在脚本中进行引用
	awk -v var='var test' '{print var}'

	二、比较操作符
		语法：expression {actions;}
		expression 可以使用以下操作符构成
		<                小于
		>                大于
		<=               小于等于
		>=               大于等于
		==               等于
		!=               不等于
		value ~ /pattern/          若value匹配pattern则为真
		value !~ /pattern/         若value不匹配pattern则为真
		说明：$2 ~ /^\$[1-9][0-9]*  将匹配第二列以$开头，然后大于1的二位数。（注意，这里是1而不是10）

	三、printf的使用
		printf format1,item1,item2
		要点：
		1.与print命令最大的不同就是，printf需要指定format
		2.format 用来指定后面的每个item的输出格式
		3.printf 不能自动打印后面的\n换行符

		format 格式是已%开头，后面跟字符，例如：
		%c 显示字符的ACSII
		%d, %i 十进制整数
		%e, %E 科学技术显示数值
		%s 显示字符串
		%u 无符号整数

		修饰符；
		N：显示宽度
		-：左对齐
		+：显示数值符号
		例子：
		awk -F: '{printf %-15s %i\n", $1,$3}' /etc/passwd
	四、输出重定向
		printf items > output-file
		printf items >> output-file
		printf items | command
		/dev/stdin 标准输入
		/dev/stdout 标准输出
		/dev/stderr 标准错误输出
		/dev/fd/N 指定文件描述符  /dev/stdin 相当于 /dev/fd/0

		例子；
		awk -F: '{printf "%-15s $i\n", $1, $3 > "/dev/stderr"}' /etc/passwd
	五、awk 实例
		awk 'BENGIN{print "Username Id Shell"}{printf "%-10s%-10s%-20s\n",$1,$3,$7}END{print "End of report"}' /etc/passwd
		/正则表达式/：使用通配符的扩展集。
		关系表达式：可以用下面运算符表中的关系运算符进行操作，可以是字符串或数字的比较，如$2>$1选择第二个字段比第一个字段长的行，
		模式匹配表达式：
		模式：指定一个行的饭费，该语法不能包括BEGIN和END模式
		BEGIN: 让用户指定在第一条输入记录被处理之前所发生的动作，通常可在这里设置全局变量，
		END： 让用户最后一条记录被读取之后放生的动作。
		awk -F: '/^r/{print $1}' /etc/passwd
		awk -F: '$3>=500{print $1,$3}' /etc/passwd
		awk -F: '$3+1>=500{print $1,$3}' /etc/passwd
		awk -F: '$7~"bash$"{print $1, $3}' etc/passwd
		
		awk 进行排重
		awk -F'\t' '!a[$1]++' a.txt
		sort -t'	' -k 1 -u a.txt
		
	六、控制语句
		1. if-else
		语法：if(condition){then-body} else {else-body}
		例子：
		awk -F: '{if($1=="root") print $1, "Admin"; else print $1, "Common Admin"}' /etc/passwd
		awk -F: -v sum=0 '{if($3>=500) sum++}END{print sum}' /etc/passwd
		2.while
		语法：while(condition){satement1;statment2;...}
		例子：
		awk -F: '{i=1;while(i<=3){print $i;i++}}' /etc/passwd
		3. do-while
		语法：do{statement1,statement2,...} while (condition)
		awk -F: 'i=1;do{print $i;i++}while(i<=3)' /etc/passwd
		4.for
		语法：for(variable assignment;condition;iteration process) {statement1,statement2,...}
		awk -F: '{for(i=1;i<=3;i++) print $1}' /etc/passwd
		for循环还可以用来遍历数组元素：
		语法：for(i in array) {statement1, statement2, ...}
		awk -F: '$NF!~/^$/{BASH[$NF]++}END{for(A in BASH){printf "$15s:%i\n", A, BASH[A]}' /etc/passwd

	七、差集 交集 
	1.查找file2不在file1当中的数据
	awk 'NR==FNR{a[$1]=1}NR>FNR{if(!a[$1]) print $0}'  file1 file2  

}